﻿// MT405




using Little.Soldier.SWIFT;
using Little.Soldier.SWIFT.Definition;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Text;

namespace Little.Soldier.SWIFT.Messages.Category4
{
  public class MT405 : SwiftMessage
  {
    private static SwiftMessageDefinition MessageDefinition;
    private static SwiftTagSequenceDefinition U0002;
    private static SwiftTagDefinition U0003;
    private static SwiftTagSubItemDefinition U0004;
    private static SwiftTagDefinition U0005;
    private static SwiftTagSubItemDefinition U0006;
    private static SwiftTagSubItemDefinition U0007;
    private static SwiftTagSubItemDefinition U0008;
    private static SwiftTagDefinition U000E;
    private static SwiftTagSubItemDefinition U000F;
    private static SwiftTagDefinition U0010;
    private static SwiftTagSubItemDefinition U0011;
    private static SwiftTagDefinition U0012;
    private static SwiftTagSubItemDefinition U0013;
    private static SwiftTagDefinition U0014;
    private static SwiftTagSubItemDefinition U0015;
    private static SwiftTagSubItemDefinition U0016;
    private static SwiftTagChoiceDefinition U0017;
    private static SwiftTagDefinition U0018;
    private static SwiftTagSubItemDefinition U0019;
    private static SwiftTagSubItemDefinition U001A;
    private static SwiftTagDefinition U001B;
    private static SwiftTagSubItemDefinition U001C;
    private static SwiftTagDefinition U001D;
    private static SwiftTagSubItemDefinition U001E;
    private static SwiftTagSubItemDefinition U001F;
    private static SwiftTagDefinition U007F;
    private static SwiftTagSubItemDefinition U0080;
    private static SwiftTagSubItemDefinition U0081;
    private static SwiftTagDefinition U0082;
    private static SwiftTagSubItemDefinition U0083;
    private static SwiftTagDefinition U0084;
    private static SwiftTagDefinition U0086;
    private static SwiftTagSubItemDefinition U0087;
    private static SwiftTagDefinition U0088;
    private static SwiftTagSubItemDefinition U0089;
    private static SwiftTagDefinition U008A;
    private static SwiftTagSubItemDefinition U008B;
    private static SwiftTagSubItemDefinition U008C;
    private static SwiftTagSubItemDefinition U008D;
    private static SwiftTagSubItemDefinition U008E;
    private static SwiftTagSubItemDefinition U008F;
    private static SwiftTagSubItemDefinition U0090;
    private static SwiftTagSequenceDefinition U0091;
    private static SwiftTagDefinition U0092;
    private static SwiftTagSubItemDefinition U0093;
    private static SwiftTagSubItemDefinition U0094;
    private static SwiftTagSubItemDefinition U0095;
    private static SwiftTagDefinition U0096;
    private static SwiftTagSubItemDefinition U0097;
    private static SwiftTagSubItemDefinition U0098;
    private static SwiftTagSubItemDefinition U0099;
    private static SwiftTagSequenceDefinition U009A;
    private static SwiftTagDefinition U009B;
    private static SwiftTagSubItemDefinition U009C;
    private static SwiftTagDefinition U009D;
    private static SwiftTagSubItemDefinition U009E;
    private static SwiftTagSubItemDefinition U009F;
    private static SwiftTagSubItemDefinition U0001U0002;
    private static SwiftTagDefinition U0002U0002;
    private static SwiftTagSubItemDefinition U0003U0002;
    private static SwiftTagDefinition U0004U0002;
    private static SwiftTagSubItemDefinition U0005U0002;
    private static SwiftTagDefinition U0006U0002;
    private static SwiftTagSubItemDefinition U0007U0002;
    private static SwiftTagDefinition U0008U0002;
    private static SwiftTagSubItemDefinition U000EU0002;
    private static SwiftTagDefinition U000FU0002;
    private static SwiftTagSubItemDefinition U0010U0002;
    private static SwiftTagChoiceDefinition U0011U0002;
    private static SwiftTagDefinition U0012U0002;
    private static SwiftTagSubItemDefinition U0013U0002;
    private static SwiftTagSubItemDefinition U0014U0002;
    private static SwiftTagSubItemDefinition U0015U0002;
    private static SwiftTagDefinition U0016U0002;
    private static SwiftTagSubItemDefinition U0017U0002;
    private static SwiftTagSubItemDefinition U0018U0002;
    private static SwiftTagSubItemDefinition U0019U0002;
    private static SwiftTagSubItemDefinition U001AU0002;
    private static SwiftTagSubItemDefinition U001BU0002;
    private static SwiftTagDefinition U001CU0002;
    private static SwiftTagSubItemDefinition U001DU0002;
    private static SwiftTagDefinition U001EU0002;
    private static SwiftTagSubItemDefinition U001FU0002;
    private static SwiftTagDefinition U007FU0002;
    private static SwiftTagSubItemDefinition U0080U0002;
    private static SwiftTagSubItemDefinition U0081U0002;
    private static SwiftTagSubItemDefinition U0082U0002;
    private static SwiftTagSubItemDefinition U0083U0002;
    private static SwiftTagSubItemDefinition U0084U0002;
    private static SwiftTagDefinition U0086U0002;
    private static SwiftTagSubItemDefinition U0087U0002;
    private static SwiftTagDefinition U0088U0002;
    private static SwiftTagSubItemDefinition U0089U0002;
    private static SwiftTagSubItemDefinition U008AU0002;
    private static SwiftTagChoiceDefinition U008BU0002;
    private static SwiftTagDefinition U008CU0002;
    private static SwiftTagSubItemDefinition U008DU0002;
    private static SwiftTagSubItemDefinition U008EU0002;
    private static SwiftTagDefinition U008FU0002;
    private static SwiftTagSubItemDefinition U0090U0002;
    private static SwiftTagDefinition U0091U0002;
    private static SwiftTagSubItemDefinition U0092U0002;
    private static SwiftTagSubItemDefinition U0093U0002;
    private static SwiftTagChoiceDefinition U0094U0002;
    private static SwiftTagDefinition U0095U0002;
    private static SwiftTagSubItemDefinition U0096U0002;
    private static SwiftTagSubItemDefinition U0097U0002;
    private static SwiftTagDefinition U0098U0002;
    private static SwiftTagSubItemDefinition U0099U0002;
    private static SwiftTagDefinition U009AU0002;
    private static SwiftTagSubItemDefinition U009BU0002;
    private static SwiftTagSubItemDefinition U009CU0002;
    private static SwiftTagDefinition U009DU0002;
    private static SwiftTagSubItemDefinition U009EU0002;
    private static SwiftTagSubItemDefinition U009FU0002;
    private static SwiftTagSubItemDefinition U0001U0003;
    private static SwiftTagDefinition U0002U0003;
    private static SwiftTagSubItemDefinition U0003U0003;
    private static SwiftTagDefinition U0004U0003;
    private static SwiftTagSubItemDefinition U0005U0003;
    private static SwiftTagDefinition U0006U0003;
    private static SwiftTagDefinition U0007U0003;
    private static SwiftTagSubItemDefinition U0008U0003;
    private static SwiftTagDefinition U000EU0003;
    private static SwiftTagSubItemDefinition U000FU0003;
    private static SwiftTagDefinition U0010U0003;
    private static SwiftTagSubItemDefinition U0011U0003;
    private static SwiftTagSubItemDefinition U0012U0003;
    private static SwiftTagDefinition U0013U0003;
    private static SwiftTagSubItemDefinition U0014U0003;
    private static SwiftTagSubItemDefinition U0015U0003;
    private static SwiftTagDefinition U0016U0003;
    private static SwiftTagSubItemDefinition U0017U0003;
    private static SwiftTagSubItemDefinition U0018U0003;
    private static SwiftTagSubItemDefinition U0019U0003;
    private static SwiftTagSubItemDefinition U001AU0003;
    private static SwiftTagSubItemDefinition U001BU0003;
    private static SwiftTagSubItemDefinition U001CU0003;
    private static SwiftTagSequenceDefinition U001DU0003;
    private static SwiftTagDefinition U001EU0003;
    private static SwiftTagSubItemDefinition U001FU0003;
    private static SwiftTagSubItemDefinition U007FU0003;
    private static SwiftTagSubItemDefinition U0080U0003;
    private static SwiftTagDefinition U0081U0003;
    private static SwiftTagSubItemDefinition U0082U0003;
    private static SwiftTagSubItemDefinition U0083U0003;
    private static SwiftTagSubItemDefinition U0084U0003;
    private static SwiftTagSequenceDefinition U0086U0003;
    private static SwiftTagDefinition U0087U0003;
    private static SwiftTagSubItemDefinition U0088U0003;
    private static SwiftTagDefinition U0089U0003;
    private static SwiftTagSubItemDefinition U008AU0003;
    private static SwiftTagSubItemDefinition U008BU0003;
    private static SwiftTagSubItemDefinition U008CU0003;
    private static SwiftTagSubItemDefinition U008DU0003;
    private static SwiftTagDefinition U008EU0003;
    private static SwiftTagSubItemDefinition U008FU0003;
    private static SwiftTagSubItemDefinition U0090U0003;
    private static SwiftTagSubItemDefinition U0091U0003;
    private static SwiftTagDefinition U0092U0003;
    private static SwiftTagSubItemDefinition U0093U0003;
    private static SwiftTagSequenceDefinition U0094U0003;
    private static SwiftTagChoiceDefinition U0095U0003;
    private static SwiftTagDefinition U0096U0003;
    private static SwiftTagSubItemDefinition U0097U0003;
    private static SwiftTagSubItemDefinition U0098U0003;
    private static SwiftTagSubItemDefinition U0099U0003;
    private static SwiftTagDefinition U009AU0003;
    private static SwiftTagSubItemDefinition U009BU0003;
    private static SwiftTagSubItemDefinition U009CU0003;
    private static SwiftTagChoiceDefinition U009DU0003;
    private static SwiftTagDefinition U009EU0003;
    private static SwiftTagSubItemDefinition U009FU0003;
    private static SwiftTagSubItemDefinition U0001U0004;
    private static SwiftTagDefinition U0002U0004;
    private static SwiftTagSubItemDefinition U0003U0004;
    private static SwiftTagDefinition U0004U0004;
    private static SwiftTagSubItemDefinition U0005U0004;
    private static SwiftTagSubItemDefinition U0006U0004;
    private static SwiftTagChoiceDefinition U0007U0004;
    private static SwiftTagDefinition U0008U0004;
    private static SwiftTagSubItemDefinition U000EU0004;
    private static SwiftTagSubItemDefinition U000FU0004;
    private static SwiftTagDefinition U0010U0004;
    private static SwiftTagSubItemDefinition U0011U0004;
    private static SwiftTagSubItemDefinition U0012U0004;
    private static SwiftTagSequenceDefinition U0013U0004;
    private static SwiftTagChoiceDefinition U0014U0004;
    private static SwiftTagDefinition U0015U0004;
    private static SwiftTagSubItemDefinition U0016U0004;
    private static SwiftTagSubItemDefinition U0017U0004;
    private static SwiftTagDefinition U0018U0004;
    private static SwiftTagSubItemDefinition U0019U0004;
    private static SwiftTagSubItemDefinition U001AU0004;
    private static SwiftTagSubItemDefinition U001BU0004;
    private static SwiftTagDefinition U001CU0004;
    private static SwiftTagSubItemDefinition U001DU0004;
    private static SwiftTagDefinition U001EU0004;
    private static SwiftTagSubItemDefinition U001FU0004;
    private static SwiftTagSubItemDefinition U007FU0004;
    private static SwiftTagDefinition U0080U0004;
    private static SwiftTagSubItemDefinition U0081U0004;
    private static SwiftTagSubItemDefinition U0082U0004;
    private static SwiftTagChoiceDefinition U0083U0004;
    private static SwiftTagDefinition U0084U0004;
    private static SwiftTagSubItemDefinition U0086U0004;
    private static SwiftTagSubItemDefinition U0087U0004;
    private static SwiftTagDefinition U0088U0004;
    private static SwiftTagSubItemDefinition U0089U0004;
    private static SwiftTagDefinition U008AU0004;
    private static SwiftTagSubItemDefinition U008BU0004;
    private static SwiftTagSubItemDefinition U008CU0004;
    private static SwiftTagChoiceDefinition U008DU0004;
    private static SwiftTagDefinition U008EU0004;
    private static SwiftTagSubItemDefinition U008FU0004;
    private static SwiftTagSubItemDefinition U0090U0004;
    private static SwiftTagDefinition U0091U0004;
    private static SwiftTagSubItemDefinition U0092U0004;
    private static SwiftTagSubItemDefinition U0093U0004;

    [Description("General Information")]
    public MT405.SequenceAClass SequenceA
    {
      get
      {
        return new MT405.SequenceAClass((SwiftElement) this, 0, false);
      }
    }

    [Description("Financial Document Details")]
    public MT405.SequenceBClass[] SequenceB
    {
      get
      {
        int index = -1;
        List<MT405.SequenceBClass> list = new List<MT405.SequenceBClass>();
        int count;
        do
        {
          ++index;
          MT405.SequenceBClass sequenceBclass = new MT405.SequenceBClass((SwiftElement) this, index, false);
          count = this.ListTags((SwiftElement) sequenceBclass).Count;
          if (count > 0)
            list.Add(sequenceBclass);
        }
        while (count > 0);
        return list.ToArray();
      }
    }

    [Description("Settlement Details")]
    public MT405.SequenceCClass SequenceC
    {
      get
      {
        MT405.SequenceCClass sequenceCclass = new MT405.SequenceCClass((SwiftElement) this, 0, false);
        if (this.ListTags((SwiftElement) sequenceCclass).Count > 0)
          return sequenceCclass;
        else
          return (MT405.SequenceCClass) null;
      }
    }

    public MT405()
      : base(true)
    {
    }

    public MT405(SwiftMessage message)
      : base(message)
    {
    }

    public MT405.SequenceBClass AddSequenceB()
    {
      return new MT405.SequenceBClass((SwiftElement) this, this.SequenceB.Length, true);
    }

    public void RemoveSequenceB(MT405.SequenceBClass sequence)
    {
      foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
        this.RemoveTag(tag);
    }

    public MT405.SequenceCClass AddSequenceC()
    {
      return this.SequenceC ?? new MT405.SequenceCClass((SwiftElement) this, 0, true);
    }

    public void RemoveSequenceC(MT405.SequenceCClass sequence)
    {
      foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
        this.RemoveTag(tag);
    }

    internal override SwiftMessageDefinition MsgDefinition()
    {
      return MT405.MessageDefinition;
    }

    protected override void InitSwiftMessageDefinition()
    {
      MT405.MessageDefinition = new SwiftMessageDefinition("MT405", "Clean Collection");
      MT405.U0002 = new SwiftTagSequenceDefinition("SequenceA", "General Information");
      MT405.U0003 = new SwiftTagDefinition("SendersReference_A_20", "Sender's Reference");
      MT405.U0003.TagName = ":20:";
      MT405.U0004 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT405.U0003.Elements.Add((SwiftDefinitionElement) MT405.U0004);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U0003);
      MT405.U0005 = new SwiftTagDefinition("CollectionType_A_23E", "Collection Type");
      MT405.U0005.TagName = ":23E:";
      MT405.U0005.Mandatory = false;
      MT405.U0006 = new SwiftTagSubItemDefinition("Type", "Type");
      MT405.U0005.Elements.Add((SwiftDefinitionElement) MT405.U0006);
      MT405.U0007 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT405.U0007.Mandatory = false;
      MT405.U0008 = new SwiftTagSubItemDefinition("Narrative_1", "Narrative");
      MT405.U0007.Elements.Add((SwiftDefinitionElement) MT405.U0008);
      MT405.U0005.Elements.Add((SwiftDefinitionElement) MT405.U0007);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U0005);
      MT405.U000E = new SwiftTagDefinition("CollectionInstructions_A_22D", "Collection Instructions");
      MT405.U000E.TagName = ":22D:";
      MT405.U000E.Mandatory = false;
      MT405.U000F = new SwiftTagSubItemDefinition("CollectionInstructions", "Collection Instructions");
      MT405.U000E.Elements.Add((SwiftDefinitionElement) MT405.U000F);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U000E);
      MT405.U0010 = new SwiftTagDefinition("ProtestInstructions_A_22E", "Protest Instructions");
      MT405.U0010.TagName = ":22E:";
      MT405.U0010.Mandatory = false;
      MT405.U0011 = new SwiftTagSubItemDefinition("ProtestInstructions", "Protest Instructions");
      MT405.U0010.Elements.Add((SwiftDefinitionElement) MT405.U0011);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U0010);
      MT405.U0012 = new SwiftTagDefinition("InstructingParty_A_50L", "Instructing Party");
      MT405.U0012.TagName = ":50L:";
      MT405.U0012.Mandatory = false;
      MT405.U0013 = new SwiftTagSubItemDefinition("InstructingParty", "Instructing Party");
      MT405.U0012.Elements.Add((SwiftDefinitionElement) MT405.U0013);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U0012);
      MT405.U0014 = new SwiftTagDefinition("Principal_A_50D", "Principal");
      MT405.U0014.TagName = ":50D:";
      MT405.U0014.Mandatory = false;
      MT405.U0015 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U0015.Mandatory = false;
      MT405.U0014.Elements.Add((SwiftDefinitionElement) MT405.U0015);
      MT405.U0016 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT405.U0014.Elements.Add((SwiftDefinitionElement) MT405.U0016);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U0014);
      MT405.U0017 = new SwiftTagChoiceDefinition("Choice", "");
      MT405.U0017.Mandatory = false;
      MT405.U0017.Multiple = true;
      MT405.U0018 = new SwiftTagDefinition("RemittingBank_A_52A", "Remitting Bank");
      MT405.U0018.TagName = ":52A:";
      MT405.U0019 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U0019.Mandatory = false;
      MT405.U0018.Elements.Add((SwiftDefinitionElement) MT405.U0019);
      MT405.U001A = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT405.U0018.Elements.Add((SwiftDefinitionElement) MT405.U001A);
      MT405.U0017.Elements.Add((SwiftDefinitionElement) MT405.U0018);
      MT405.U001B = new SwiftTagDefinition("RemittingBank_A_52C", "Remitting Bank");
      MT405.U001B.TagName = ":52C:/";
      MT405.U001C = new SwiftTagSubItemDefinition("Account", "Account");
      MT405.U001B.Elements.Add((SwiftDefinitionElement) MT405.U001C);
      MT405.U0017.Elements.Add((SwiftDefinitionElement) MT405.U001B);
      MT405.U001D = new SwiftTagDefinition("RemittingBank_A_52D", "Remitting Bank");
      MT405.U001D.TagName = ":52D:";
      MT405.U001E = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U001E.Mandatory = false;
      MT405.U001D.Elements.Add((SwiftDefinitionElement) MT405.U001E);
      MT405.U001F = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT405.U001D.Elements.Add((SwiftDefinitionElement) MT405.U001F);
      MT405.U0017.Elements.Add((SwiftDefinitionElement) MT405.U001D);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U0017);
      MT405.U007F = new SwiftTagDefinition("SendingInstitution_A_51A", "Sending Institution");
      MT405.U007F.TagName = ":51A:";
      MT405.U007F.Mandatory = false;
      MT405.U0080 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U0080.Mandatory = false;
      MT405.U007F.Elements.Add((SwiftDefinitionElement) MT405.U0080);
      MT405.U0081 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT405.U007F.Elements.Add((SwiftDefinitionElement) MT405.U0081);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U007F);
      MT405.U0082 = new SwiftTagDefinition("TransactionTypeCode_A_26T", "Transaction Type Code");
      MT405.U0082.TagName = ":26T:";
      MT405.U0082.Mandatory = false;
      MT405.U0083 = new SwiftTagSubItemDefinition("TransactionTypeCode", "Transaction Type Code");
      MT405.U0082.Elements.Add((SwiftDefinitionElement) MT405.U0083);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U0082);
      MT405.U0084 = new SwiftTagDefinition("RegulatoryReporting_A_77B", "Regulatory Reporting");
      MT405.U0084.TagName = ":77B:";
      MT405.U0084.Mandatory = false;
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U0084);
      MT405.U0086 = new SwiftTagDefinition("DetailsOfCharges_A_71A", "Details Of Charges");
      MT405.U0086.TagName = ":71A:";
      MT405.U0086.Mandatory = false;
      MT405.U0087 = new SwiftTagSubItemDefinition("DetailsOfCharges", "Details Of Charges");
      MT405.U0086.Elements.Add((SwiftDefinitionElement) MT405.U0087);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U0086);
      MT405.U0088 = new SwiftTagDefinition("ChargesIndicator_A_17A", "Charges Indicator");
      MT405.U0088.TagName = ":17A:";
      MT405.U0088.Mandatory = false;
      MT405.U0089 = new SwiftTagSubItemDefinition("ChargesIndicator", "Charges Indicator");
      MT405.U0088.Elements.Add((SwiftDefinitionElement) MT405.U0089);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U0088);
      MT405.U008A = new SwiftTagDefinition("SenderToReceiverInformation_A_72", "Sender To Receiver Information");
      MT405.U008A.TagName = ":72:";
      MT405.U008A.Mandatory = false;
      MT405.U008B = new SwiftTagSubItemDefinition("Line1", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x]");
      MT405.U008A.Elements.Add((SwiftDefinitionElement) MT405.U008B);
      MT405.U008C = new SwiftTagSubItemDefinition("Line2", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT405.U008C.Mandatory = false;
      MT405.U008A.Elements.Add((SwiftDefinitionElement) MT405.U008C);
      MT405.U008D = new SwiftTagSubItemDefinition("Line3", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT405.U008D.Mandatory = false;
      MT405.U008A.Elements.Add((SwiftDefinitionElement) MT405.U008D);
      MT405.U008E = new SwiftTagSubItemDefinition("Line4", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT405.U008E.Mandatory = false;
      MT405.U008A.Elements.Add((SwiftDefinitionElement) MT405.U008E);
      MT405.U008F = new SwiftTagSubItemDefinition("Line5", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT405.U008F.Mandatory = false;
      MT405.U008A.Elements.Add((SwiftDefinitionElement) MT405.U008F);
      MT405.U0090 = new SwiftTagSubItemDefinition("Line6", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT405.U0090.Mandatory = false;
      MT405.U008A.Elements.Add((SwiftDefinitionElement) MT405.U0090);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U008A);
      MT405.U0091 = new SwiftTagSequenceDefinition("SequenceA1", "Avalisation Details");
      MT405.U0091.Mandatory = false;
      MT405.U0092 = new SwiftTagDefinition("AvalisingParty_A1_50K", "Avalising Party");
      MT405.U0092.TagName = ":50K:";
      MT405.U0093 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U0093.Mandatory = false;
      MT405.U0094 = new SwiftTagSubItemDefinition("Identifier", "PartyIdentifier");
      MT405.U0093.Elements.Add((SwiftDefinitionElement) MT405.U0094);
      MT405.U0092.Elements.Add((SwiftDefinitionElement) MT405.U0093);
      MT405.U0095 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT405.U0092.Elements.Add((SwiftDefinitionElement) MT405.U0095);
      MT405.U0091.Elements.Add((SwiftDefinitionElement) MT405.U0092);
      MT405.U0096 = new SwiftTagDefinition("AvalForAccountOf_A1_23C", "Aval For Account Of...");
      MT405.U0096.TagName = ":23C:";
      MT405.U0097 = new SwiftTagSubItemDefinition("Code", "Code");
      MT405.U0096.Elements.Add((SwiftDefinitionElement) MT405.U0097);
      MT405.U0098 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT405.U0098.Mandatory = false;
      MT405.U0099 = new SwiftTagSubItemDefinition("Narrative_1", "Narrative");
      MT405.U0098.Elements.Add((SwiftDefinitionElement) MT405.U0099);
      MT405.U0096.Elements.Add((SwiftDefinitionElement) MT405.U0098);
      MT405.U0091.Elements.Add((SwiftDefinitionElement) MT405.U0096);
      MT405.U0002.Elements.Add((SwiftDefinitionElement) MT405.U0091);
      MT405.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT405.U0002);
      MT405.U009A = new SwiftTagSequenceDefinition("SequenceB", "Financial Document Details");
      MT405.U009A.Multiple = true;
      MT405.U009B = new SwiftTagDefinition("TransactionReference_B_21A", "Transaction  Reference");
      MT405.U009B.TagName = ":21A:";
      MT405.U009C = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT405.U009B.Elements.Add((SwiftDefinitionElement) MT405.U009C);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U009B);
      MT405.U009D = new SwiftTagDefinition("CollectionType_B_23E", "Collection Type");
      MT405.U009D.TagName = ":23E:";
      MT405.U009D.Mandatory = false;
      MT405.U009E = new SwiftTagSubItemDefinition("Type", "Type");
      MT405.U009D.Elements.Add((SwiftDefinitionElement) MT405.U009E);
      MT405.U009F = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT405.U009F.Mandatory = false;
      MT405.U0001U0002 = new SwiftTagSubItemDefinition("Narrative_1", "Narrative");
      MT405.U009F.Elements.Add((SwiftDefinitionElement) MT405.U0001U0002);
      MT405.U009D.Elements.Add((SwiftDefinitionElement) MT405.U009F);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U009D);
      MT405.U0002U0002 = new SwiftTagDefinition("CollectionInstructions_B_22D", "Collection Instructions");
      MT405.U0002U0002.TagName = ":22D:";
      MT405.U0002U0002.Mandatory = false;
      MT405.U0003U0002 = new SwiftTagSubItemDefinition("CollectionInstructions", "Collection Instructions");
      MT405.U0002U0002.Elements.Add((SwiftDefinitionElement) MT405.U0003U0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0002U0002);
      MT405.U0004U0002 = new SwiftTagDefinition("ProtestInstructions_B_22E", "Protest Instructions");
      MT405.U0004U0002.TagName = ":22E:";
      MT405.U0004U0002.Mandatory = false;
      MT405.U0005U0002 = new SwiftTagSubItemDefinition("ProtestInstructions", "Protest Instructions");
      MT405.U0004U0002.Elements.Add((SwiftDefinitionElement) MT405.U0005U0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0004U0002);
      MT405.U0006U0002 = new SwiftTagDefinition("PrincipalsReference_B_21C", "Principal's Reference");
      MT405.U0006U0002.TagName = ":21C:";
      MT405.U0006U0002.Mandatory = false;
      MT405.U0007U0002 = new SwiftTagSubItemDefinition("PrincipalsReference", "Principal's Reference");
      MT405.U0006U0002.Elements.Add((SwiftDefinitionElement) MT405.U0007U0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0006U0002);
      MT405.U0008U0002 = new SwiftTagDefinition("RemittingBanksReference_B_21D", "Remitting Bank's Reference");
      MT405.U0008U0002.TagName = ":21D:";
      MT405.U0008U0002.Mandatory = false;
      MT405.U000EU0002 = new SwiftTagSubItemDefinition("RemittingBanksReference", "Remitting Bank's Reference");
      MT405.U0008U0002.Elements.Add((SwiftDefinitionElement) MT405.U000EU0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0008U0002);
      MT405.U000FU0002 = new SwiftTagDefinition("DraweesReference_B_21E", "Drawee's Reference");
      MT405.U000FU0002.TagName = ":21E:";
      MT405.U000FU0002.Mandatory = false;
      MT405.U0010U0002 = new SwiftTagSubItemDefinition("DraweesReference", "Drawee's Reference");
      MT405.U000FU0002.Elements.Add((SwiftDefinitionElement) MT405.U0010U0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U000FU0002);
      MT405.U0011U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT405.U0011U0002.Multiple = true;
      MT405.U0012U0002 = new SwiftTagDefinition("FaceAmountOfFinancialDocument_B_32A", "Face Amount Of Financial Documents");
      MT405.U0012U0002.TagName = ":32A:";
      MT405.U0013U0002 = new SwiftTagSubItemDefinition("Date", "Date");
      MT405.U0012U0002.Elements.Add((SwiftDefinitionElement) MT405.U0013U0002);
      MT405.U0014U0002 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT405.U0012U0002.Elements.Add((SwiftDefinitionElement) MT405.U0014U0002);
      MT405.U0015U0002 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT405.U0012U0002.Elements.Add((SwiftDefinitionElement) MT405.U0015U0002);
      MT405.U0011U0002.Elements.Add((SwiftDefinitionElement) MT405.U0012U0002);
      MT405.U0016U0002 = new SwiftTagDefinition("FaceAmountOfFinancialDocument_B_32K", "Face Amount Of Financial Documents");
      MT405.U0016U0002.TagName = ":32K:";
      MT405.U0017U0002 = new SwiftTagSubItemDefinition("DayMonth", "Day Or Month");
      MT405.U0016U0002.Elements.Add((SwiftDefinitionElement) MT405.U0017U0002);
      MT405.U0018U0002 = new SwiftTagSubItemDefinition("NumberOfDaysMonths", "Number Of Days Months");
      MT405.U0016U0002.Elements.Add((SwiftDefinitionElement) MT405.U0018U0002);
      MT405.U0019U0002 = new SwiftTagSubItemDefinition("Code", "Code");
      MT405.U0016U0002.Elements.Add((SwiftDefinitionElement) MT405.U0019U0002);
      MT405.U001AU0002 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT405.U0016U0002.Elements.Add((SwiftDefinitionElement) MT405.U001AU0002);
      MT405.U001BU0002 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT405.U0016U0002.Elements.Add((SwiftDefinitionElement) MT405.U001BU0002);
      MT405.U0011U0002.Elements.Add((SwiftDefinitionElement) MT405.U0016U0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0011U0002);
      MT405.U001CU0002 = new SwiftTagDefinition("IssueDate_B_30", "Issue Date");
      MT405.U001CU0002.TagName = ":30:";
      MT405.U001DU0002 = new SwiftTagSubItemDefinition("Date", "Date");
      MT405.U001CU0002.Elements.Add((SwiftDefinitionElement) MT405.U001DU0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U001CU0002);
      MT405.U001EU0002 = new SwiftTagDefinition("IssuePlace_B_29C", "Issue Place");
      MT405.U001EU0002.TagName = ":29C:";
      MT405.U001FU0002 = new SwiftTagSubItemDefinition("IssuePlace", "Issue Place");
      MT405.U001EU0002.Elements.Add((SwiftDefinitionElement) MT405.U001FU0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U001EU0002);
      MT405.U007FU0002 = new SwiftTagDefinition("PlaceOfPresentation_B_82S", "Place Of Presentation");
      MT405.U007FU0002.TagName = ":82S:";
      MT405.U007FU0002.Mandatory = false;
      MT405.U0080U0002 = new SwiftTagSubItemDefinition("CountryCodeAccountId", "Country Code and Account Id");
      MT405.U0081U0002 = new SwiftTagSubItemDefinition("CountryCode", "Country Code");
      MT405.U0080U0002.Elements.Add((SwiftDefinitionElement) MT405.U0081U0002);
      MT405.U0082U0002 = new SwiftTagSubItemDefinition("AccountId", "Account Id");
      MT405.U0082U0002.Mandatory = false;
      MT405.U0083U0002 = new SwiftTagSubItemDefinition("AccountId_1", "Account Id");
      MT405.U0082U0002.Elements.Add((SwiftDefinitionElement) MT405.U0083U0002);
      MT405.U0080U0002.Elements.Add((SwiftDefinitionElement) MT405.U0082U0002);
      MT405.U007FU0002.Elements.Add((SwiftDefinitionElement) MT405.U0080U0002);
      MT405.U0084U0002 = new SwiftTagSubItemDefinition("Place", "Place");
      MT405.U0084U0002.Mandatory = false;
      MT405.U007FU0002.Elements.Add((SwiftDefinitionElement) MT405.U0084U0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U007FU0002);
      MT405.U0086U0002 = new SwiftTagDefinition("InstructingParty_B_50L", "Instructing Party");
      MT405.U0086U0002.TagName = ":50L:";
      MT405.U0086U0002.Mandatory = false;
      MT405.U0087U0002 = new SwiftTagSubItemDefinition("InstructingParty", "Instructing Party");
      MT405.U0086U0002.Elements.Add((SwiftDefinitionElement) MT405.U0087U0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0086U0002);
      MT405.U0088U0002 = new SwiftTagDefinition("Principal_B_50D", "Principal");
      MT405.U0088U0002.TagName = ":50D:";
      MT405.U0088U0002.Mandatory = false;
      MT405.U0089U0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U0089U0002.Mandatory = false;
      MT405.U0088U0002.Elements.Add((SwiftDefinitionElement) MT405.U0089U0002);
      MT405.U008AU0002 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT405.U0088U0002.Elements.Add((SwiftDefinitionElement) MT405.U008AU0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0088U0002);
      MT405.U008BU0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT405.U008BU0002.Mandatory = false;
      MT405.U008BU0002.Multiple = true;
      MT405.U008CU0002 = new SwiftTagDefinition("RemittingBank_B_52A", "Remitting Bank");
      MT405.U008CU0002.TagName = ":52A:";
      MT405.U008DU0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U008DU0002.Mandatory = false;
      MT405.U008CU0002.Elements.Add((SwiftDefinitionElement) MT405.U008DU0002);
      MT405.U008EU0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT405.U008CU0002.Elements.Add((SwiftDefinitionElement) MT405.U008EU0002);
      MT405.U008BU0002.Elements.Add((SwiftDefinitionElement) MT405.U008CU0002);
      MT405.U008FU0002 = new SwiftTagDefinition("RemittingBank_B_52C", "Remitting Bank");
      MT405.U008FU0002.TagName = ":52C:/";
      MT405.U0090U0002 = new SwiftTagSubItemDefinition("Account", "Account");
      MT405.U008FU0002.Elements.Add((SwiftDefinitionElement) MT405.U0090U0002);
      MT405.U008BU0002.Elements.Add((SwiftDefinitionElement) MT405.U008FU0002);
      MT405.U0091U0002 = new SwiftTagDefinition("RemittingBank_B_52D", "Remitting Bank");
      MT405.U0091U0002.TagName = ":52D:";
      MT405.U0092U0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U0092U0002.Mandatory = false;
      MT405.U0091U0002.Elements.Add((SwiftDefinitionElement) MT405.U0092U0002);
      MT405.U0093U0002 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT405.U0091U0002.Elements.Add((SwiftDefinitionElement) MT405.U0093U0002);
      MT405.U008BU0002.Elements.Add((SwiftDefinitionElement) MT405.U0091U0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U008BU0002);
      MT405.U0094U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT405.U0094U0002.Mandatory = false;
      MT405.U0094U0002.Multiple = true;
      MT405.U0095U0002 = new SwiftTagDefinition("PresentingBank_B_57A", "Presenting Bank");
      MT405.U0095U0002.TagName = ":57A:";
      MT405.U0096U0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U0096U0002.Mandatory = false;
      MT405.U0095U0002.Elements.Add((SwiftDefinitionElement) MT405.U0096U0002);
      MT405.U0097U0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT405.U0095U0002.Elements.Add((SwiftDefinitionElement) MT405.U0097U0002);
      MT405.U0094U0002.Elements.Add((SwiftDefinitionElement) MT405.U0095U0002);
      MT405.U0098U0002 = new SwiftTagDefinition("PresentingBank_B_57C", "Presenting Bank");
      MT405.U0098U0002.TagName = ":57C:/";
      MT405.U0099U0002 = new SwiftTagSubItemDefinition("Account", "Account");
      MT405.U0098U0002.Elements.Add((SwiftDefinitionElement) MT405.U0099U0002);
      MT405.U0094U0002.Elements.Add((SwiftDefinitionElement) MT405.U0098U0002);
      MT405.U009AU0002 = new SwiftTagDefinition("PresentingBank_B_57D", "Presenting Bank");
      MT405.U009AU0002.TagName = ":57D:";
      MT405.U009BU0002 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U009BU0002.Mandatory = false;
      MT405.U009AU0002.Elements.Add((SwiftDefinitionElement) MT405.U009BU0002);
      MT405.U009CU0002 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT405.U009AU0002.Elements.Add((SwiftDefinitionElement) MT405.U009CU0002);
      MT405.U0094U0002.Elements.Add((SwiftDefinitionElement) MT405.U009AU0002);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0094U0002);
      MT405.U009DU0002 = new SwiftTagDefinition("Drawee_B_59", "Drawee");
      MT405.U009DU0002.TagName = ":59:";
      MT405.U009EU0002 = new SwiftTagSubItemDefinition("Account", "Account");
      MT405.U009EU0002.Mandatory = false;
      MT405.U009FU0002 = new SwiftTagSubItemDefinition("Account_1", "Account");
      MT405.U009EU0002.Elements.Add((SwiftDefinitionElement) MT405.U009FU0002);
      MT405.U009DU0002.Elements.Add((SwiftDefinitionElement) MT405.U009EU0002);
      MT405.U0001U0003 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT405.U009DU0002.Elements.Add((SwiftDefinitionElement) MT405.U0001U0003);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U009DU0002);
      MT405.U0002U0003 = new SwiftTagDefinition("ActionRequestedWithin_B_38A", "Action Requested WithIn...");
      MT405.U0002U0003.TagName = ":38A:";
      MT405.U0002U0003.Mandatory = false;
      MT405.U0003U0003 = new SwiftTagSubItemDefinition("ActionRequestedWithin", "ActionRequestedWithIn...");
      MT405.U0002U0003.Elements.Add((SwiftDefinitionElement) MT405.U0003U0003);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0002U0003);
      MT405.U0004U0003 = new SwiftTagDefinition("TransactionTypeCode_B_26T", "Transaction Type Code");
      MT405.U0004U0003.TagName = ":26T:";
      MT405.U0004U0003.Mandatory = false;
      MT405.U0005U0003 = new SwiftTagSubItemDefinition("TransactionTypeCode", "Transaction Type Code");
      MT405.U0004U0003.Elements.Add((SwiftDefinitionElement) MT405.U0005U0003);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0004U0003);
      MT405.U0006U0003 = new SwiftTagDefinition("RegulatoryReporting_B_77B", "Regulatory Reporting");
      MT405.U0006U0003.TagName = ":77B:";
      MT405.U0006U0003.Mandatory = false;
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0006U0003);
      MT405.U0007U0003 = new SwiftTagDefinition("DetailsOfCharges_B_71A", "Details Of Charges");
      MT405.U0007U0003.TagName = ":71A:";
      MT405.U0007U0003.Mandatory = false;
      MT405.U0008U0003 = new SwiftTagSubItemDefinition("DetailsOfCharges", "Details Of Charges");
      MT405.U0007U0003.Elements.Add((SwiftDefinitionElement) MT405.U0008U0003);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0007U0003);
      MT405.U000EU0003 = new SwiftTagDefinition("ChargesIndicator_B_17A", "Charges Indicator");
      MT405.U000EU0003.TagName = ":17A:";
      MT405.U000EU0003.Mandatory = false;
      MT405.U000FU0003 = new SwiftTagSubItemDefinition("ChargesIndicator", "Charges Indicator");
      MT405.U000EU0003.Elements.Add((SwiftDefinitionElement) MT405.U000FU0003);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U000EU0003);
      MT405.U0010U0003 = new SwiftTagDefinition("SendersCharges_B_71F", "Sender's Charges");
      MT405.U0010U0003.TagName = ":71F:";
      MT405.U0010U0003.Mandatory = false;
      MT405.U0011U0003 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT405.U0010U0003.Elements.Add((SwiftDefinitionElement) MT405.U0011U0003);
      MT405.U0012U0003 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT405.U0010U0003.Elements.Add((SwiftDefinitionElement) MT405.U0012U0003);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0010U0003);
      MT405.U0013U0003 = new SwiftTagDefinition("ReceiversCharges_B_71G", "Receiver's Charges");
      MT405.U0013U0003.TagName = ":71G:";
      MT405.U0013U0003.Mandatory = false;
      MT405.U0014U0003 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT405.U0013U0003.Elements.Add((SwiftDefinitionElement) MT405.U0014U0003);
      MT405.U0015U0003 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT405.U0013U0003.Elements.Add((SwiftDefinitionElement) MT405.U0015U0003);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0013U0003);
      MT405.U0016U0003 = new SwiftTagDefinition("SenderToReceiverInformation_B_72", "Sender To Receiver Information");
      MT405.U0016U0003.TagName = ":72:";
      MT405.U0016U0003.Mandatory = false;
      MT405.U0017U0003 = new SwiftTagSubItemDefinition("Line1", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x]");
      MT405.U0016U0003.Elements.Add((SwiftDefinitionElement) MT405.U0017U0003);
      MT405.U0018U0003 = new SwiftTagSubItemDefinition("Line2", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT405.U0018U0003.Mandatory = false;
      MT405.U0016U0003.Elements.Add((SwiftDefinitionElement) MT405.U0018U0003);
      MT405.U0019U0003 = new SwiftTagSubItemDefinition("Line3", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT405.U0019U0003.Mandatory = false;
      MT405.U0016U0003.Elements.Add((SwiftDefinitionElement) MT405.U0019U0003);
      MT405.U001AU0003 = new SwiftTagSubItemDefinition("Line4", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT405.U001AU0003.Mandatory = false;
      MT405.U0016U0003.Elements.Add((SwiftDefinitionElement) MT405.U001AU0003);
      MT405.U001BU0003 = new SwiftTagSubItemDefinition("Line5", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT405.U001BU0003.Mandatory = false;
      MT405.U0016U0003.Elements.Add((SwiftDefinitionElement) MT405.U001BU0003);
      MT405.U001CU0003 = new SwiftTagSubItemDefinition("Line6", "Line with a maximum of 35 SWIFT characters having format as /8c/[25x] or [//33x]");
      MT405.U001CU0003.Mandatory = false;
      MT405.U0016U0003.Elements.Add((SwiftDefinitionElement) MT405.U001CU0003);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0016U0003);
      MT405.U001DU0003 = new SwiftTagSequenceDefinition("SequenceB1", "Avalisation Details");
      MT405.U001DU0003.Mandatory = false;
      MT405.U001EU0003 = new SwiftTagDefinition("AvalisingParty_B1_50K", "Avalising Party");
      MT405.U001EU0003.TagName = ":50K:";
      MT405.U001FU0003 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U001FU0003.Mandatory = false;
      MT405.U007FU0003 = new SwiftTagSubItemDefinition("Identifier", "PartyIdentifier");
      MT405.U001FU0003.Elements.Add((SwiftDefinitionElement) MT405.U007FU0003);
      MT405.U001EU0003.Elements.Add((SwiftDefinitionElement) MT405.U001FU0003);
      MT405.U0080U0003 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT405.U001EU0003.Elements.Add((SwiftDefinitionElement) MT405.U0080U0003);
      MT405.U001DU0003.Elements.Add((SwiftDefinitionElement) MT405.U001EU0003);
      MT405.U0081U0003 = new SwiftTagDefinition("AvalForAccountOf_B1_23C", "Aval For Account Of...");
      MT405.U0081U0003.TagName = ":23C:";
      MT405.U0082U0003 = new SwiftTagSubItemDefinition("Code", "Code");
      MT405.U0081U0003.Elements.Add((SwiftDefinitionElement) MT405.U0082U0003);
      MT405.U0083U0003 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT405.U0083U0003.Mandatory = false;
      MT405.U0084U0003 = new SwiftTagSubItemDefinition("Narrative_1", "Narrative");
      MT405.U0083U0003.Elements.Add((SwiftDefinitionElement) MT405.U0084U0003);
      MT405.U0081U0003.Elements.Add((SwiftDefinitionElement) MT405.U0083U0003);
      MT405.U001DU0003.Elements.Add((SwiftDefinitionElement) MT405.U0081U0003);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U001DU0003);
      MT405.U0086U0003 = new SwiftTagSequenceDefinition("SequenceB2", "Interest Calculation Details");
      MT405.U0086U0003.Mandatory = false;
      MT405.U0087U0003 = new SwiftTagDefinition("InterestRate_B2_37J", "Interest Rate");
      MT405.U0087U0003.TagName = ":37J:";
      MT405.U0088U0003 = new SwiftTagSubItemDefinition("Rate", "Rate");
      MT405.U0087U0003.Elements.Add((SwiftDefinitionElement) MT405.U0088U0003);
      MT405.U0086U0003.Elements.Add((SwiftDefinitionElement) MT405.U0087U0003);
      MT405.U0089U0003 = new SwiftTagDefinition("InterestPaymentSchedule_B2_38B", "Interest Payment Schedule");
      MT405.U0089U0003.TagName = ":38B:";
      MT405.U008AU0003 = new SwiftTagSubItemDefinition("Frequency", "Frequency");
      MT405.U0089U0003.Elements.Add((SwiftDefinitionElement) MT405.U008AU0003);
      MT405.U008BU0003 = new SwiftTagSubItemDefinition("TimingInPeriod", "Timing In Period");
      MT405.U0089U0003.Elements.Add((SwiftDefinitionElement) MT405.U008BU0003);
      MT405.U008CU0003 = new SwiftTagSubItemDefinition("Day", "Day");
      MT405.U008CU0003.Mandatory = false;
      MT405.U008DU0003 = new SwiftTagSubItemDefinition("Day_1", "Day");
      MT405.U008CU0003.Elements.Add((SwiftDefinitionElement) MT405.U008DU0003);
      MT405.U0089U0003.Elements.Add((SwiftDefinitionElement) MT405.U008CU0003);
      MT405.U0086U0003.Elements.Add((SwiftDefinitionElement) MT405.U0089U0003);
      MT405.U008EU0003 = new SwiftTagDefinition("InterestCalculationBasis_B2_23F", "Interest Calculation Basis");
      MT405.U008EU0003.TagName = ":23F:";
      MT405.U008FU0003 = new SwiftTagSubItemDefinition("Code", "Code");
      MT405.U008EU0003.Elements.Add((SwiftDefinitionElement) MT405.U008FU0003);
      MT405.U0090U0003 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT405.U0090U0003.Mandatory = false;
      MT405.U0091U0003 = new SwiftTagSubItemDefinition("Narrative_1", "Narrative");
      MT405.U0090U0003.Elements.Add((SwiftDefinitionElement) MT405.U0091U0003);
      MT405.U008EU0003.Elements.Add((SwiftDefinitionElement) MT405.U0090U0003);
      MT405.U0086U0003.Elements.Add((SwiftDefinitionElement) MT405.U008EU0003);
      MT405.U0092U0003 = new SwiftTagDefinition("InterestIndicator_B2_17F", "Interest Indicator");
      MT405.U0092U0003.TagName = ":17F:";
      MT405.U0093U0003 = new SwiftTagSubItemDefinition("InterestIndicator", "Interest Indicator");
      MT405.U0092U0003.Elements.Add((SwiftDefinitionElement) MT405.U0093U0003);
      MT405.U0086U0003.Elements.Add((SwiftDefinitionElement) MT405.U0092U0003);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0086U0003);
      MT405.U0094U0003 = new SwiftTagSequenceDefinition("SequenceB3", "Financial Document Settlement Details");
      MT405.U0094U0003.Mandatory = false;
      MT405.U0095U0003 = new SwiftTagChoiceDefinition("Choice", "");
      MT405.U0095U0003.Multiple = true;
      MT405.U0096U0003 = new SwiftTagDefinition("ProceedsToBeRemitted_B3_32C", "Proceeds to be remitted");
      MT405.U0096U0003.TagName = ":32C:";
      MT405.U0097U0003 = new SwiftTagSubItemDefinition("Date", "Date");
      MT405.U0096U0003.Elements.Add((SwiftDefinitionElement) MT405.U0097U0003);
      MT405.U0098U0003 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT405.U0096U0003.Elements.Add((SwiftDefinitionElement) MT405.U0098U0003);
      MT405.U0099U0003 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT405.U0096U0003.Elements.Add((SwiftDefinitionElement) MT405.U0099U0003);
      MT405.U0095U0003.Elements.Add((SwiftDefinitionElement) MT405.U0096U0003);
      MT405.U009AU0003 = new SwiftTagDefinition("ProceedsToBeRemitted_B3_32G", "Proceeds to be remitted");
      MT405.U009AU0003.TagName = ":32G:";
      MT405.U009BU0003 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT405.U009AU0003.Elements.Add((SwiftDefinitionElement) MT405.U009BU0003);
      MT405.U009CU0003 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT405.U009AU0003.Elements.Add((SwiftDefinitionElement) MT405.U009CU0003);
      MT405.U0095U0003.Elements.Add((SwiftDefinitionElement) MT405.U009AU0003);
      MT405.U0094U0003.Elements.Add((SwiftDefinitionElement) MT405.U0095U0003);
      MT405.U009DU0003 = new SwiftTagChoiceDefinition("Choice", "");
      MT405.U009DU0003.Mandatory = false;
      MT405.U009DU0003.Multiple = true;
      MT405.U009EU0003 = new SwiftTagDefinition("SettlementInstitution_B3_56A", "Settlement Institution");
      MT405.U009EU0003.TagName = ":56A:";
      MT405.U009FU0003 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U009FU0003.Mandatory = false;
      MT405.U009EU0003.Elements.Add((SwiftDefinitionElement) MT405.U009FU0003);
      MT405.U0001U0004 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT405.U009EU0003.Elements.Add((SwiftDefinitionElement) MT405.U0001U0004);
      MT405.U009DU0003.Elements.Add((SwiftDefinitionElement) MT405.U009EU0003);
      MT405.U0002U0004 = new SwiftTagDefinition("SettlementInstitution_B3_56C", "Settlement Institution");
      MT405.U0002U0004.TagName = ":56C:/";
      MT405.U0003U0004 = new SwiftTagSubItemDefinition("Account", "Account");
      MT405.U0002U0004.Elements.Add((SwiftDefinitionElement) MT405.U0003U0004);
      MT405.U009DU0003.Elements.Add((SwiftDefinitionElement) MT405.U0002U0004);
      MT405.U0004U0004 = new SwiftTagDefinition("SettlementInstitution_B3_56D", "Settlement Institution");
      MT405.U0004U0004.TagName = ":56D:";
      MT405.U0005U0004 = new SwiftTagSubItemDefinition("AccountIdentifier", "Account Identifier");
      MT405.U0005U0004.Mandatory = false;
      MT405.U0004U0004.Elements.Add((SwiftDefinitionElement) MT405.U0005U0004);
      MT405.U0006U0004 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT405.U0004U0004.Elements.Add((SwiftDefinitionElement) MT405.U0006U0004);
      MT405.U009DU0003.Elements.Add((SwiftDefinitionElement) MT405.U0004U0004);
      MT405.U0094U0003.Elements.Add((SwiftDefinitionElement) MT405.U009DU0003);
      MT405.U0007U0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT405.U0007U0004.Mandatory = false;
      MT405.U0007U0004.Multiple = true;
      MT405.U0008U0004 = new SwiftTagDefinition("SendersCorrespondent_B3_53A", "Sender's Correspondent");
      MT405.U0008U0004.TagName = ":53A:";
      MT405.U000EU0004 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U000EU0004.Mandatory = false;
      MT405.U0008U0004.Elements.Add((SwiftDefinitionElement) MT405.U000EU0004);
      MT405.U000FU0004 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT405.U0008U0004.Elements.Add((SwiftDefinitionElement) MT405.U000FU0004);
      MT405.U0007U0004.Elements.Add((SwiftDefinitionElement) MT405.U0008U0004);
      MT405.U0010U0004 = new SwiftTagDefinition("SendersCorrespondent_B3_53B", "Sender's Correspondent");
      MT405.U0010U0004.TagName = ":53B:";
      MT405.U0011U0004 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U0011U0004.Mandatory = false;
      MT405.U0010U0004.Elements.Add((SwiftDefinitionElement) MT405.U0011U0004);
      MT405.U0012U0004 = new SwiftTagSubItemDefinition("Location", "Location");
      MT405.U0012U0004.Mandatory = false;
      MT405.U0010U0004.Elements.Add((SwiftDefinitionElement) MT405.U0012U0004);
      MT405.U0007U0004.Elements.Add((SwiftDefinitionElement) MT405.U0010U0004);
      MT405.U0094U0003.Elements.Add((SwiftDefinitionElement) MT405.U0007U0004);
      MT405.U009A.Elements.Add((SwiftDefinitionElement) MT405.U0094U0003);
      MT405.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT405.U009A);
      MT405.U0013U0004 = new SwiftTagSequenceDefinition("SequenceC", "Settlement Details");
      MT405.U0013U0004.Mandatory = false;
      MT405.U0014U0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT405.U0014U0004.Multiple = true;
      MT405.U0015U0004 = new SwiftTagDefinition("ProceedsToBeRemitted_C_32B", "Proceeds To Be Remitted");
      MT405.U0015U0004.TagName = ":32B:";
      MT405.U0016U0004 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT405.U0015U0004.Elements.Add((SwiftDefinitionElement) MT405.U0016U0004);
      MT405.U0017U0004 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT405.U0015U0004.Elements.Add((SwiftDefinitionElement) MT405.U0017U0004);
      MT405.U0014U0004.Elements.Add((SwiftDefinitionElement) MT405.U0015U0004);
      MT405.U0018U0004 = new SwiftTagDefinition("ProceedsToBeRemitted_C_32D", "Proceeds To Be Remitted");
      MT405.U0018U0004.TagName = ":32D:";
      MT405.U0019U0004 = new SwiftTagSubItemDefinition("Date", "Date");
      MT405.U0018U0004.Elements.Add((SwiftDefinitionElement) MT405.U0019U0004);
      MT405.U001AU0004 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT405.U0018U0004.Elements.Add((SwiftDefinitionElement) MT405.U001AU0004);
      MT405.U001BU0004 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT405.U0018U0004.Elements.Add((SwiftDefinitionElement) MT405.U001BU0004);
      MT405.U0014U0004.Elements.Add((SwiftDefinitionElement) MT405.U0018U0004);
      MT405.U0013U0004.Elements.Add((SwiftDefinitionElement) MT405.U0014U0004);
      MT405.U001CU0004 = new SwiftTagDefinition("SumOfFaceAmountsOfFinancialDocuments_C_19", "Sum of Face Amounts of Financial Documents");
      MT405.U001CU0004.TagName = ":19:";
      MT405.U001CU0004.Mandatory = false;
      MT405.U001DU0004 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT405.U001CU0004.Elements.Add((SwiftDefinitionElement) MT405.U001DU0004);
      MT405.U0013U0004.Elements.Add((SwiftDefinitionElement) MT405.U001CU0004);
      MT405.U001EU0004 = new SwiftTagDefinition("SumOfSendersCharges_C_71F", "Sum Of Sender's Charges");
      MT405.U001EU0004.TagName = ":71F:";
      MT405.U001EU0004.Mandatory = false;
      MT405.U001FU0004 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT405.U001EU0004.Elements.Add((SwiftDefinitionElement) MT405.U001FU0004);
      MT405.U007FU0004 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT405.U001EU0004.Elements.Add((SwiftDefinitionElement) MT405.U007FU0004);
      MT405.U0013U0004.Elements.Add((SwiftDefinitionElement) MT405.U001EU0004);
      MT405.U0080U0004 = new SwiftTagDefinition("SumOfReceiversCharges_C_71G", "Sum Of Receiver's Charges");
      MT405.U0080U0004.TagName = ":71G:";
      MT405.U0080U0004.Mandatory = false;
      MT405.U0081U0004 = new SwiftTagSubItemDefinition("Currency", "Currency");
      MT405.U0080U0004.Elements.Add((SwiftDefinitionElement) MT405.U0081U0004);
      MT405.U0082U0004 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT405.U0080U0004.Elements.Add((SwiftDefinitionElement) MT405.U0082U0004);
      MT405.U0013U0004.Elements.Add((SwiftDefinitionElement) MT405.U0080U0004);
      MT405.U0083U0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT405.U0083U0004.Mandatory = false;
      MT405.U0083U0004.Multiple = true;
      MT405.U0084U0004 = new SwiftTagDefinition("SettlementInstitution_C_56A", "Settlement Institution");
      MT405.U0084U0004.TagName = ":56A:";
      MT405.U0086U0004 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U0086U0004.Mandatory = false;
      MT405.U0084U0004.Elements.Add((SwiftDefinitionElement) MT405.U0086U0004);
      MT405.U0087U0004 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT405.U0084U0004.Elements.Add((SwiftDefinitionElement) MT405.U0087U0004);
      MT405.U0083U0004.Elements.Add((SwiftDefinitionElement) MT405.U0084U0004);
      MT405.U0088U0004 = new SwiftTagDefinition("SettlementInstitution_C_56C", "Settlement Institution");
      MT405.U0088U0004.TagName = ":56C:/";
      MT405.U0089U0004 = new SwiftTagSubItemDefinition("Account", "Account");
      MT405.U0088U0004.Elements.Add((SwiftDefinitionElement) MT405.U0089U0004);
      MT405.U0083U0004.Elements.Add((SwiftDefinitionElement) MT405.U0088U0004);
      MT405.U008AU0004 = new SwiftTagDefinition("SettlementInstitution_C_56D", "Settlement Institution");
      MT405.U008AU0004.TagName = ":56D:";
      MT405.U008BU0004 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U008BU0004.Mandatory = false;
      MT405.U008AU0004.Elements.Add((SwiftDefinitionElement) MT405.U008BU0004);
      MT405.U008CU0004 = new SwiftTagSubItemDefinition("NameAndAddress", "Name And Address");
      MT405.U008AU0004.Elements.Add((SwiftDefinitionElement) MT405.U008CU0004);
      MT405.U0083U0004.Elements.Add((SwiftDefinitionElement) MT405.U008AU0004);
      MT405.U0013U0004.Elements.Add((SwiftDefinitionElement) MT405.U0083U0004);
      MT405.U008DU0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT405.U008DU0004.Mandatory = false;
      MT405.U008DU0004.Multiple = true;
      MT405.U008EU0004 = new SwiftTagDefinition("SendersCorrespondent_C_53A", "Sender's Correspondent");
      MT405.U008EU0004.TagName = ":53A:";
      MT405.U008FU0004 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U008FU0004.Mandatory = false;
      MT405.U008EU0004.Elements.Add((SwiftDefinitionElement) MT405.U008FU0004);
      MT405.U0090U0004 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT405.U008EU0004.Elements.Add((SwiftDefinitionElement) MT405.U0090U0004);
      MT405.U008DU0004.Elements.Add((SwiftDefinitionElement) MT405.U008EU0004);
      MT405.U0091U0004 = new SwiftTagDefinition("SendersCorrespondent_C_53B", "Sender's Correspondent");
      MT405.U0091U0004.TagName = ":53B:";
      MT405.U0092U0004 = new SwiftTagSubItemDefinition("PartyIdentifier", "Party Identifier");
      MT405.U0092U0004.Mandatory = false;
      MT405.U0091U0004.Elements.Add((SwiftDefinitionElement) MT405.U0092U0004);
      MT405.U0093U0004 = new SwiftTagSubItemDefinition("Location", "Location");
      MT405.U0093U0004.Mandatory = false;
      MT405.U0091U0004.Elements.Add((SwiftDefinitionElement) MT405.U0093U0004);
      MT405.U008DU0004.Elements.Add((SwiftDefinitionElement) MT405.U0091U0004);
      MT405.U0013U0004.Elements.Add((SwiftDefinitionElement) MT405.U008DU0004);
      MT405.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT405.U0013U0004);
    }

    public class SequenceAClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT405.U0002;
        }
      }

      [Description("Sender's Reference")]
      public Tag20 SendersReference_A_20
      {
        get
        {
          return new Tag20((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0003);
        }
      }

      [Description("Sender's Reference")]
      public Tag20 Tag20_SendersReference_A
      {
        get
        {
          return this.SendersReference_A_20;
        }
      }

      [Description("Collection Type")]
      public Tag23E CollectionType_A_23E
      {
        get
        {
          return new Tag23E((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0005);
        }
      }

      [Description("Collection Type")]
      public Tag23E Tag23E_CollectionType_A
      {
        get
        {
          return this.CollectionType_A_23E;
        }
      }

      [Description("Collection Instructions")]
      public Tag22D CollectionInstructions_A_22D
      {
        get
        {
          return new Tag22D((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U000E);
        }
      }

      [Description("Collection Instructions")]
      public Tag22D Tag22D_CollectionInstructions_A
      {
        get
        {
          return this.CollectionInstructions_A_22D;
        }
      }

      [Description("Protest Instructions")]
      public Tag22E ProtestInstructions_A_22E
      {
        get
        {
          return new Tag22E((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0010);
        }
      }

      [Description("Protest Instructions")]
      public Tag22E Tag22E_ProtestInstructions_A
      {
        get
        {
          return this.ProtestInstructions_A_22E;
        }
      }

      [Description("Instructing Party")]
      public Tag50L InstructingParty_A_50L
      {
        get
        {
          return new Tag50L((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0012);
        }
      }

      [Description("Instructing Party")]
      public Tag50L Tag50L_InstructingParty_A
      {
        get
        {
          return this.InstructingParty_A_50L;
        }
      }

      [Description("Principal")]
      public Tag50D Principal_A_50D
      {
        get
        {
          return new Tag50D((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0014);
        }
      }

      [Description("Principal")]
      public Tag50D Tag50D_Principal_A
      {
        get
        {
          return this.Principal_A_50D;
        }
      }

      [Description("Remitting Bank")]
      public Tag52A RemittingBank_A_52A
      {
        get
        {
          return new Tag52A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0018);
        }
      }

      [Description("Remitting Bank")]
      public Tag52A Tag52A_RemittingBank_A
      {
        get
        {
          return this.RemittingBank_A_52A;
        }
      }

      [Description("Remitting Bank")]
      public Tag52C RemittingBank_A_52C
      {
        get
        {
          return new Tag52C((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U001B);
        }
      }

      [Description("Remitting Bank")]
      public Tag52C Tag52C_RemittingBank_A
      {
        get
        {
          return this.RemittingBank_A_52C;
        }
      }

      [Description("Remitting Bank")]
      public Tag52D RemittingBank_A_52D
      {
        get
        {
          return new Tag52D((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U001D);
        }
      }

      [Description("Remitting Bank")]
      public Tag52D Tag52D_RemittingBank_A
      {
        get
        {
          return this.RemittingBank_A_52D;
        }
      }

      [Description("Sending Institution")]
      public Tag51A SendingInstitution_A_51A
      {
        get
        {
          return new Tag51A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U007F);
        }
      }

      [Description("Sending Institution")]
      public Tag51A Tag51A_SendingInstitution_A
      {
        get
        {
          return this.SendingInstitution_A_51A;
        }
      }

      [Description("Transaction Type Code")]
      public Tag26T TransactionTypeCode_A_26T
      {
        get
        {
          return new Tag26T((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0082);
        }
      }

      [Description("Transaction Type Code")]
      public Tag26T Tag26T_TransactionTypeCode_A
      {
        get
        {
          return this.TransactionTypeCode_A_26T;
        }
      }

      [Description("Regulatory Reporting")]
      public Tag77B RegulatoryReporting_A_77B
      {
        get
        {
          return new Tag77B((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0084);
        }
      }

      [Description("Regulatory Reporting")]
      public Tag77B Tag77B_RegulatoryReporting_A
      {
        get
        {
          return this.RegulatoryReporting_A_77B;
        }
      }

      [Description("Details Of Charges")]
      public Tag71A DetailsOfCharges_A_71A
      {
        get
        {
          return new Tag71A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0086);
        }
      }

      [Description("Details Of Charges")]
      public Tag71A Tag71A_DetailsOfCharges_A
      {
        get
        {
          return this.DetailsOfCharges_A_71A;
        }
      }

      [Description("Charges Indicator")]
      public Tag17A ChargesIndicator_A_17A
      {
        get
        {
          return new Tag17A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0088);
        }
      }

      [Description("Charges Indicator")]
      public Tag17A Tag17A_ChargesIndicator_A
      {
        get
        {
          return this.ChargesIndicator_A_17A;
        }
      }

      [Description("Sender To Receiver Information")]
      public MT405.SequenceAClass.Tag72 SenderToReceiverInformation_A_72
      {
        get
        {
          return new MT405.SequenceAClass.Tag72((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U008A);
        }
      }

      [Description("Sender To Receiver Information")]
      public MT405.SequenceAClass.Tag72 Tag72_SenderToReceiverInformation_A
      {
        get
        {
          return this.SenderToReceiverInformation_A_72;
        }
      }

      [Description("Avalisation Details")]
      public MT405.SequenceAClass.SequenceA1Class SequenceA1
      {
        get
        {
          MT405.SequenceAClass.SequenceA1Class sequenceA1Class = new MT405.SequenceAClass.SequenceA1Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceA1Class).Count > 0)
            return sequenceA1Class;
          else
            return (MT405.SequenceAClass.SequenceA1Class) null;
        }
      }

      internal SequenceAClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public MT405.SequenceAClass.SequenceA1Class AddSequenceA1()
      {
        return this.SequenceA1 ?? new MT405.SequenceAClass.SequenceA1Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceA1(MT405.SequenceAClass.SequenceA1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class Tag72 : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("72", value);
          }
        }

        internal Tag72(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class SequenceA1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT405.U0091;
          }
        }

        [Description("Avalising Party")]
        public Tag50K AvalisingParty_A1_50K
        {
          get
          {
            return new Tag50K((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0092);
          }
        }

        [Description("Avalising Party")]
        public Tag50K Tag50K_AvalisingParty_A1
        {
          get
          {
            return this.AvalisingParty_A1_50K;
          }
        }

        [Description("Aval For Account Of...")]
        public Tag23C AvalForAccountOf_A1_23C
        {
          get
          {
            return new Tag23C((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0096);
          }
        }

        [Description("Aval For Account Of...")]
        public Tag23C Tag23C_AvalForAccountOf_A1
        {
          get
          {
            return this.AvalForAccountOf_A1_23C;
          }
        }

        internal SequenceA1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }
    }

    public class SequenceBClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT405.U009A;
        }
      }

      [Description("Transaction  Reference")]
      public Tag21A TransactionReference_B_21A
      {
        get
        {
          return new Tag21A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U009B);
        }
      }

      [Description("Transaction  Reference")]
      public Tag21A Tag21A_TransactionReference_B
      {
        get
        {
          return this.TransactionReference_B_21A;
        }
      }

      [Description("Collection Type")]
      public Tag23E CollectionType_B_23E
      {
        get
        {
          return new Tag23E((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U009D);
        }
      }

      [Description("Collection Type")]
      public Tag23E Tag23E_CollectionType_B
      {
        get
        {
          return this.CollectionType_B_23E;
        }
      }

      [Description("Collection Instructions")]
      public Tag22D CollectionInstructions_B_22D
      {
        get
        {
          return new Tag22D((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0002U0002);
        }
      }

      [Description("Collection Instructions")]
      public Tag22D Tag22D_CollectionInstructions_B
      {
        get
        {
          return this.CollectionInstructions_B_22D;
        }
      }

      [Description("Protest Instructions")]
      public Tag22E ProtestInstructions_B_22E
      {
        get
        {
          return new Tag22E((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0004U0002);
        }
      }

      [Description("Protest Instructions")]
      public Tag22E Tag22E_ProtestInstructions_B
      {
        get
        {
          return this.ProtestInstructions_B_22E;
        }
      }

      [Description("Principal's Reference")]
      public Tag21C PrincipalsReference_B_21C
      {
        get
        {
          return new Tag21C((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0006U0002);
        }
      }

      [Description("Principal's Reference")]
      public Tag21C Tag21C_PrincipalsReference_B
      {
        get
        {
          return this.PrincipalsReference_B_21C;
        }
      }

      [Description("Remitting Bank's Reference")]
      public Tag21D RemittingBanksReference_B_21D
      {
        get
        {
          return new Tag21D((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0008U0002);
        }
      }

      [Description("Remitting Bank's Reference")]
      public Tag21D Tag21D_RemittingBanksReference_B
      {
        get
        {
          return this.RemittingBanksReference_B_21D;
        }
      }

      [Description("Drawee's Reference")]
      public Tag21E DraweesReference_B_21E
      {
        get
        {
          return new Tag21E((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U000FU0002);
        }
      }

      [Description("Drawee's Reference")]
      public Tag21E Tag21E_DraweesReference_B
      {
        get
        {
          return this.DraweesReference_B_21E;
        }
      }

      [Description("Face Amount Of Financial Documents")]
      public Tag32A FaceAmountOfFinancialDocument_B_32A
      {
        get
        {
          return new Tag32A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0012U0002);
        }
      }

      [Description("Face Amount Of Financial Documents")]
      public Tag32A Tag32A_FaceAmountOfFinancialDocument_B
      {
        get
        {
          return this.FaceAmountOfFinancialDocument_B_32A;
        }
      }

      [Description("Face Amount Of Financial Documents")]
      public Tag32K FaceAmountOfFinancialDocument_B_32K
      {
        get
        {
          return new Tag32K((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0016U0002);
        }
      }

      [Description("Face Amount Of Financial Documents")]
      public Tag32K Tag32K_FaceAmountOfFinancialDocument_B
      {
        get
        {
          return this.FaceAmountOfFinancialDocument_B_32K;
        }
      }

      [Description("Issue Date")]
      public Tag30 IssueDate_B_30
      {
        get
        {
          return new Tag30((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U001CU0002);
        }
      }

      [Description("Issue Date")]
      public Tag30 Tag30_IssueDate_B
      {
        get
        {
          return this.IssueDate_B_30;
        }
      }

      [Description("Issue Place")]
      public Tag29C IssuePlace_B_29C
      {
        get
        {
          return new Tag29C((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U001EU0002);
        }
      }

      [Description("Issue Place")]
      public Tag29C Tag29C_IssuePlace_B
      {
        get
        {
          return this.IssuePlace_B_29C;
        }
      }

      [Description("Place Of Presentation")]
      public Tag82S PlaceOfPresentation_B_82S
      {
        get
        {
          return new Tag82S((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U007FU0002);
        }
      }

      [Description("Place Of Presentation")]
      public Tag82S Tag82S_PlaceOfPresentation_B
      {
        get
        {
          return this.PlaceOfPresentation_B_82S;
        }
      }

      [Description("Instructing Party")]
      public Tag50L InstructingParty_B_50L
      {
        get
        {
          return new Tag50L((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0086U0002);
        }
      }

      [Description("Instructing Party")]
      public Tag50L Tag50L_InstructingParty_B
      {
        get
        {
          return this.InstructingParty_B_50L;
        }
      }

      [Description("Principal")]
      public Tag50D Principal_B_50D
      {
        get
        {
          return new Tag50D((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0088U0002);
        }
      }

      [Description("Principal")]
      public Tag50D Tag50D_Principal_B
      {
        get
        {
          return this.Principal_B_50D;
        }
      }

      [Description("Remitting Bank")]
      public Tag52A RemittingBank_B_52A
      {
        get
        {
          return new Tag52A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U008CU0002);
        }
      }

      [Description("Remitting Bank")]
      public Tag52A Tag52A_RemittingBank_B
      {
        get
        {
          return this.RemittingBank_B_52A;
        }
      }

      [Description("Remitting Bank")]
      public Tag52C RemittingBank_B_52C
      {
        get
        {
          return new Tag52C((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U008FU0002);
        }
      }

      [Description("Remitting Bank")]
      public Tag52C Tag52C_RemittingBank_B
      {
        get
        {
          return this.RemittingBank_B_52C;
        }
      }

      [Description("Remitting Bank")]
      public Tag52D RemittingBank_B_52D
      {
        get
        {
          return new Tag52D((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0091U0002);
        }
      }

      [Description("Remitting Bank")]
      public Tag52D Tag52D_RemittingBank_B
      {
        get
        {
          return this.RemittingBank_B_52D;
        }
      }

      [Description("Presenting Bank")]
      public Tag57A PresentingBank_B_57A
      {
        get
        {
          return new Tag57A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0095U0002);
        }
      }

      [Description("Presenting Bank")]
      public Tag57A Tag57A_PresentingBank_B
      {
        get
        {
          return this.PresentingBank_B_57A;
        }
      }

      [Description("Presenting Bank")]
      public Tag57C PresentingBank_B_57C
      {
        get
        {
          return new Tag57C((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0098U0002);
        }
      }

      [Description("Presenting Bank")]
      public Tag57C Tag57C_PresentingBank_B
      {
        get
        {
          return this.PresentingBank_B_57C;
        }
      }

      [Description("Presenting Bank")]
      public Tag57D PresentingBank_B_57D
      {
        get
        {
          return new Tag57D((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U009AU0002);
        }
      }

      [Description("Presenting Bank")]
      public Tag57D Tag57D_PresentingBank_B
      {
        get
        {
          return this.PresentingBank_B_57D;
        }
      }

      [Description("Drawee")]
      public Tag59 Drawee_B_59
      {
        get
        {
          return new Tag59((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U009DU0002);
        }
      }

      [Description("Drawee")]
      public Tag59 Tag59_Drawee_B
      {
        get
        {
          return this.Drawee_B_59;
        }
      }

      [Description("Action Requested WithIn...")]
      public Tag38A ActionRequestedWithin_B_38A
      {
        get
        {
          return new Tag38A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0002U0003);
        }
      }

      [Description("Action Requested WithIn...")]
      public Tag38A Tag38A_ActionRequestedWithin_B
      {
        get
        {
          return this.ActionRequestedWithin_B_38A;
        }
      }

      [Description("Transaction Type Code")]
      public Tag26T TransactionTypeCode_B_26T
      {
        get
        {
          return new Tag26T((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0004U0003);
        }
      }

      [Description("Transaction Type Code")]
      public Tag26T Tag26T_TransactionTypeCode_B
      {
        get
        {
          return this.TransactionTypeCode_B_26T;
        }
      }

      [Description("Regulatory Reporting")]
      public Tag77B RegulatoryReporting_B_77B
      {
        get
        {
          return new Tag77B((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0006U0003);
        }
      }

      [Description("Regulatory Reporting")]
      public Tag77B Tag77B_RegulatoryReporting_B
      {
        get
        {
          return this.RegulatoryReporting_B_77B;
        }
      }

      [Description("Details Of Charges")]
      public Tag71A DetailsOfCharges_B_71A
      {
        get
        {
          return new Tag71A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0007U0003);
        }
      }

      [Description("Details Of Charges")]
      public Tag71A Tag71A_DetailsOfCharges_B
      {
        get
        {
          return this.DetailsOfCharges_B_71A;
        }
      }

      [Description("Charges Indicator")]
      public Tag17A ChargesIndicator_B_17A
      {
        get
        {
          return new Tag17A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U000EU0003);
        }
      }

      [Description("Charges Indicator")]
      public Tag17A Tag17A_ChargesIndicator_B
      {
        get
        {
          return this.ChargesIndicator_B_17A;
        }
      }

      [Description("Sender's Charges")]
      public Tag71F SendersCharges_B_71F
      {
        get
        {
          return new Tag71F((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0010U0003);
        }
      }

      [Description("Sender's Charges")]
      public Tag71F Tag71F_SendersCharges_B
      {
        get
        {
          return this.SendersCharges_B_71F;
        }
      }

      [Description("Receiver's Charges")]
      public Tag71G ReceiversCharges_B_71G
      {
        get
        {
          return new Tag71G((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0013U0003);
        }
      }

      [Description("Receiver's Charges")]
      public Tag71G Tag71G_ReceiversCharges_B
      {
        get
        {
          return this.ReceiversCharges_B_71G;
        }
      }

      [Description("Sender To Receiver Information")]
      public MT405.SequenceBClass.Tag72 SenderToReceiverInformation_B_72
      {
        get
        {
          return new MT405.SequenceBClass.Tag72((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0016U0003);
        }
      }

      [Description("Sender To Receiver Information")]
      public MT405.SequenceBClass.Tag72 Tag72_SenderToReceiverInformation_B
      {
        get
        {
          return this.SenderToReceiverInformation_B_72;
        }
      }

      [Description("Avalisation Details")]
      public MT405.SequenceBClass.SequenceB1Class SequenceB1
      {
        get
        {
          MT405.SequenceBClass.SequenceB1Class sequenceB1Class = new MT405.SequenceBClass.SequenceB1Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceB1Class).Count > 0)
            return sequenceB1Class;
          else
            return (MT405.SequenceBClass.SequenceB1Class) null;
        }
      }

      [Description("Interest Calculation Details")]
      public MT405.SequenceBClass.SequenceB2Class SequenceB2
      {
        get
        {
          MT405.SequenceBClass.SequenceB2Class sequenceB2Class = new MT405.SequenceBClass.SequenceB2Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceB2Class).Count > 0)
            return sequenceB2Class;
          else
            return (MT405.SequenceBClass.SequenceB2Class) null;
        }
      }

      [Description("Financial Document Settlement Details")]
      public MT405.SequenceBClass.SequenceB3Class SequenceB3
      {
        get
        {
          MT405.SequenceBClass.SequenceB3Class sequenceB3Class = new MT405.SequenceBClass.SequenceB3Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceB3Class).Count > 0)
            return sequenceB3Class;
          else
            return (MT405.SequenceBClass.SequenceB3Class) null;
        }
      }

      internal SequenceBClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public MT405.SequenceBClass.SequenceB1Class AddSequenceB1()
      {
        return this.SequenceB1 ?? new MT405.SequenceBClass.SequenceB1Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceB1(MT405.SequenceBClass.SequenceB1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public MT405.SequenceBClass.SequenceB2Class AddSequenceB2()
      {
        return this.SequenceB2 ?? new MT405.SequenceBClass.SequenceB2Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceB2(MT405.SequenceBClass.SequenceB2Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public MT405.SequenceBClass.SequenceB3Class AddSequenceB3()
      {
        return this.SequenceB3 ?? new MT405.SequenceBClass.SequenceB3Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceB3(MT405.SequenceBClass.SequenceB3Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class Tag72 : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("72", value);
          }
        }

        internal Tag72(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class SequenceB1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT405.U001DU0003;
          }
        }

        [Description("Avalising Party")]
        public Tag50K AvalisingParty_B1_50K
        {
          get
          {
            return new Tag50K((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U001EU0003);
          }
        }

        [Description("Avalising Party")]
        public Tag50K Tag50K_AvalisingParty_B1
        {
          get
          {
            return this.AvalisingParty_B1_50K;
          }
        }

        [Description("Aval For Account Of...")]
        public Tag23C AvalForAccountOf_B1_23C
        {
          get
          {
            return new Tag23C((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0081U0003);
          }
        }

        [Description("Aval For Account Of...")]
        public Tag23C Tag23C_AvalForAccountOf_B1
        {
          get
          {
            return this.AvalForAccountOf_B1_23C;
          }
        }

        internal SequenceB1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }

      public class SequenceB2Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT405.U0086U0003;
          }
        }

        [Description("Interest Rate")]
        public Tag37J InterestRate_B2_37J
        {
          get
          {
            return new Tag37J((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0087U0003);
          }
        }

        [Description("Interest Rate")]
        public Tag37J Tag37J_InterestRate_B2
        {
          get
          {
            return this.InterestRate_B2_37J;
          }
        }

        [Description("Interest Payment Schedule")]
        public Tag38B InterestPaymentSchedule_B2_38B
        {
          get
          {
            return new Tag38B((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0089U0003);
          }
        }

        [Description("Interest Payment Schedule")]
        public Tag38B Tag38B_InterestPaymentSchedule_B2
        {
          get
          {
            return this.InterestPaymentSchedule_B2_38B;
          }
        }

        [Description("Interest Calculation Basis")]
        public Tag23F InterestCalculationBasis_B2_23F
        {
          get
          {
            return new Tag23F((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U008EU0003);
          }
        }

        [Description("Interest Calculation Basis")]
        public Tag23F Tag23F_InterestCalculationBasis_B2
        {
          get
          {
            return this.InterestCalculationBasis_B2_23F;
          }
        }

        [Description("Interest Indicator")]
        public Tag17F InterestIndicator_B2_17F
        {
          get
          {
            return new Tag17F((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0092U0003);
          }
        }

        [Description("Interest Indicator")]
        public Tag17F Tag17F_InterestIndicator_B2
        {
          get
          {
            return this.InterestIndicator_B2_17F;
          }
        }

        internal SequenceB2Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }

      public class SequenceB3Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT405.U0094U0003;
          }
        }

        [Description("Proceeds to be remitted")]
        public MT405.SequenceBClass.SequenceB3Class.Tag32C ProceedsToBeRemitted_B3_32C
        {
          get
          {
            return new MT405.SequenceBClass.SequenceB3Class.Tag32C((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0096U0003);
          }
        }

        [Description("Proceeds to be remitted")]
        public MT405.SequenceBClass.SequenceB3Class.Tag32C Tag32C_ProceedsToBeRemitted_B3
        {
          get
          {
            return this.ProceedsToBeRemitted_B3_32C;
          }
        }

        [Description("Proceeds to be remitted")]
        public Tag32G ProceedsToBeRemitted_B3_32G
        {
          get
          {
            return new Tag32G((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U009AU0003);
          }
        }

        [Description("Proceeds to be remitted")]
        public Tag32G Tag32G_ProceedsToBeRemitted_B3
        {
          get
          {
            return this.ProceedsToBeRemitted_B3_32G;
          }
        }

        [Description("Settlement Institution")]
        public Tag56A SettlementInstitution_B3_56A
        {
          get
          {
            return new Tag56A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U009EU0003);
          }
        }

        [Description("Settlement Institution")]
        public Tag56A Tag56A_SettlementInstitution_B3
        {
          get
          {
            return this.SettlementInstitution_B3_56A;
          }
        }

        [Description("Settlement Institution")]
        public Tag56C SettlementInstitution_B3_56C
        {
          get
          {
            return new Tag56C((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0002U0004);
          }
        }

        [Description("Settlement Institution")]
        public Tag56C Tag56C_SettlementInstitution_B3
        {
          get
          {
            return this.SettlementInstitution_B3_56C;
          }
        }

        [Description("Settlement Institution")]
        public MT405.SequenceBClass.SequenceB3Class.Tag56D SettlementInstitution_B3_56D
        {
          get
          {
            return new MT405.SequenceBClass.SequenceB3Class.Tag56D((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0004U0004);
          }
        }

        [Description("Settlement Institution")]
        public MT405.SequenceBClass.SequenceB3Class.Tag56D Tag56D_SettlementInstitution_B3
        {
          get
          {
            return this.SettlementInstitution_B3_56D;
          }
        }

        [Description("Sender's Correspondent")]
        public Tag53A SendersCorrespondent_B3_53A
        {
          get
          {
            return new Tag53A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0008U0004);
          }
        }

        [Description("Sender's Correspondent")]
        public Tag53A Tag53A_SendersCorrespondent_B3
        {
          get
          {
            return this.SendersCorrespondent_B3_53A;
          }
        }

        [Description("Sender's Correspondent")]
        public Tag53B SendersCorrespondent_B3_53B
        {
          get
          {
            return new Tag53B((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0010U0004);
          }
        }

        [Description("Sender's Correspondent")]
        public Tag53B Tag53B_SendersCorrespondent_B3
        {
          get
          {
            return this.SendersCorrespondent_B3_53B;
          }
        }

        internal SequenceB3Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public class Tag32C : SwiftTagWrapper
        {
          public string Value
          {
            get
            {
              return this.GetValue();
            }
            set
            {
              this.SetValue("32C", value);
            }
          }

          public DateTime Date
          {
            get
            {
              DateTime result = DateTime.MinValue;
              string str = this.Value;
              if (str != null && str.Length > 0)
                DateTime.TryParseExact(str.Length <= 6 ? str.Substring(0) : str.Substring(0, 6), "yyMMdd", (IFormatProvider) CultureInfo.CurrentCulture, DateTimeStyles.None, out result);
              return result;
            }
            set
            {
              int num1 = 0;
              int num2 = 6;
              StringBuilder stringBuilder = new StringBuilder();
              string str1 = this.Value ?? string.Empty;
              str1.PadLeft(num1, ' ');
              stringBuilder.Append(str1.Substring(0, num1));
              string str2 = string.Format("{0:yyMMdd}", (object) value);
              if (str2.Length > num2)
                str2 = str2.Substring(0, num2);
              if (str1.Length > num1 + num2)
                str2 = str2.PadLeft(num2, ' ');
              stringBuilder.Append(str2);
              if (str1.Length > num1 + num2)
                stringBuilder.Append(str1.Substring(num1 + num2));
              this.Value = ((object) stringBuilder).ToString();
            }
          }

          public string Currency
          {
            get
            {
              string str1 = (string) null;
              string str2 = this.Value;
              if (str2 != null && str2.Length > 6)
                str1 = str2.Length <= 9 ? str2.Substring(6) : str2.Substring(6, 3);
              return str1;
            }
            set
            {
              int num1 = 6;
              int num2 = 3;
              StringBuilder stringBuilder = new StringBuilder();
              string str1 = this.Value ?? string.Empty;
              str1.PadLeft(num1, ' ');
              stringBuilder.Append(str1.Substring(0, num1));
              string str2 = ((object) value).ToString();
              if (str2.Length > num2)
                str2 = str2.Substring(0, num2);
              if (str1.Length > num1 + num2)
                str2 = str2.PadLeft(num2, ' ');
              stringBuilder.Append(str2);
              if (str1.Length > num1 + num2)
                stringBuilder.Append(str1.Substring(num1 + num2));
              this.Value = ((object) stringBuilder).ToString();
            }
          }

          public Decimal Amount
          {
            get
            {
              Decimal result = new Decimal(0);
              string str = this.Value;
              if (str != null && str.Length > 9)
                Decimal.TryParse(str.Length <= 24 ? str.Substring(9) : str.Substring(9, 15), out result);
              return result;
            }
            set
            {
              int num1 = 9;
              int num2 = 15;
              StringBuilder stringBuilder = new StringBuilder();
              string str1 = this.Value ?? string.Empty;
              str1.PadLeft(num1, ' ');
              stringBuilder.Append(str1.Substring(0, num1));
              string str2 = value.ToString();
              if (str2.Length > num2)
                str2 = str2.Substring(0, num2);
              if (str1.Length > num1 + num2)
                str2 = str2.PadLeft(num2, ' ');
              stringBuilder.Append(str2);
              if (str1.Length > num1 + num2)
                stringBuilder.Append(str1.Substring(num1 + num2));
              this.Value = ((object) stringBuilder).ToString();
            }
          }

          internal Tag32C(SwiftElement parent, int index, SwiftDefinitionElement definition)
            : base(parent, index, definition)
          {
          }
        }

        public class Tag56D : SwiftTagWrapper
        {
          public string Value
          {
            get
            {
              return this.GetValue();
            }
            set
            {
              this.SetValue("56D", value);
            }
          }

          internal Tag56D(SwiftElement parent, int index, SwiftDefinitionElement definition)
            : base(parent, index, definition)
          {
          }
        }
      }
    }

    public class SequenceCClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT405.U0013U0004;
        }
      }

      [Description("Proceeds To Be Remitted")]
      public Tag32B ProceedsToBeRemitted_C_32B
      {
        get
        {
          return new Tag32B((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0015U0004);
        }
      }

      [Description("Proceeds To Be Remitted")]
      public Tag32B Tag32B_ProceedsToBeRemitted_C
      {
        get
        {
          return this.ProceedsToBeRemitted_C_32B;
        }
      }

      [Description("Proceeds To Be Remitted")]
      public MT405.SequenceCClass.Tag32D ProceedsToBeRemitted_C_32D
      {
        get
        {
          return new MT405.SequenceCClass.Tag32D((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0018U0004);
        }
      }

      [Description("Proceeds To Be Remitted")]
      public MT405.SequenceCClass.Tag32D Tag32D_ProceedsToBeRemitted_C
      {
        get
        {
          return this.ProceedsToBeRemitted_C_32D;
        }
      }

      [Description("Sum of Face Amounts of Financial Documents")]
      public Tag19 SumOfFaceAmountsOfFinancialDocuments_C_19
      {
        get
        {
          return new Tag19((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U001CU0004);
        }
      }

      [Description("Sum of Face Amounts of Financial Documents")]
      public Tag19 Tag19_SumOfFaceAmountsOfFinancialDocuments_C
      {
        get
        {
          return this.SumOfFaceAmountsOfFinancialDocuments_C_19;
        }
      }

      [Description("Sum Of Sender's Charges")]
      public Tag71F SumOfSendersCharges_C_71F
      {
        get
        {
          return new Tag71F((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U001EU0004);
        }
      }

      [Description("Sum Of Sender's Charges")]
      public Tag71F Tag71F_SumOfSendersCharges_C
      {
        get
        {
          return this.SumOfSendersCharges_C_71F;
        }
      }

      [Description("Sum Of Receiver's Charges")]
      public Tag71G SumOfReceiversCharges_C_71G
      {
        get
        {
          return new Tag71G((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0080U0004);
        }
      }

      [Description("Sum Of Receiver's Charges")]
      public Tag71G Tag71G_SumOfReceiversCharges_C
      {
        get
        {
          return this.SumOfReceiversCharges_C_71G;
        }
      }

      [Description("Settlement Institution")]
      public Tag56A SettlementInstitution_C_56A
      {
        get
        {
          return new Tag56A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0084U0004);
        }
      }

      [Description("Settlement Institution")]
      public Tag56A Tag56A_SettlementInstitution_C
      {
        get
        {
          return this.SettlementInstitution_C_56A;
        }
      }

      [Description("Settlement Institution")]
      public Tag56C SettlementInstitution_C_56C
      {
        get
        {
          return new Tag56C((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0088U0004);
        }
      }

      [Description("Settlement Institution")]
      public Tag56C Tag56C_SettlementInstitution_C
      {
        get
        {
          return this.SettlementInstitution_C_56C;
        }
      }

      [Description("Settlement Institution")]
      public MT405.SequenceCClass.Tag56D SettlementInstitution_C_56D
      {
        get
        {
          return new MT405.SequenceCClass.Tag56D((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U008AU0004);
        }
      }

      [Description("Settlement Institution")]
      public MT405.SequenceCClass.Tag56D Tag56D_SettlementInstitution_C
      {
        get
        {
          return this.SettlementInstitution_C_56D;
        }
      }

      [Description("Sender's Correspondent")]
      public Tag53A SendersCorrespondent_C_53A
      {
        get
        {
          return new Tag53A((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U008EU0004);
        }
      }

      [Description("Sender's Correspondent")]
      public Tag53A Tag53A_SendersCorrespondent_C
      {
        get
        {
          return this.SendersCorrespondent_C_53A;
        }
      }

      [Description("Sender's Correspondent")]
      public Tag53B SendersCorrespondent_C_53B
      {
        get
        {
          return new Tag53B((SwiftElement) this, 0, (SwiftDefinitionElement) MT405.U0091U0004);
        }
      }

      [Description("Sender's Correspondent")]
      public Tag53B Tag53B_SendersCorrespondent_C
      {
        get
        {
          return this.SendersCorrespondent_C_53B;
        }
      }

      internal SequenceCClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public class Tag32D : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("32D", value);
          }
        }

        public DateTime Date
        {
          get
          {
            DateTime result = DateTime.MinValue;
            string str = this.Value;
            if (str != null && str.Length > 0)
              DateTime.TryParseExact(str.Length <= 6 ? str.Substring(0) : str.Substring(0, 6), "yyMMdd", (IFormatProvider) CultureInfo.CurrentCulture, DateTimeStyles.None, out result);
            return result;
          }
          set
          {
            int num1 = 0;
            int num2 = 6;
            StringBuilder stringBuilder = new StringBuilder();
            string str1 = this.Value ?? string.Empty;
            str1.PadLeft(num1, ' ');
            stringBuilder.Append(str1.Substring(0, num1));
            string str2 = string.Format("{0:yyMMdd}", (object) value);
            if (str2.Length > num2)
              str2 = str2.Substring(0, num2);
            if (str1.Length > num1 + num2)
              str2 = str2.PadLeft(num2, ' ');
            stringBuilder.Append(str2);
            if (str1.Length > num1 + num2)
              stringBuilder.Append(str1.Substring(num1 + num2));
            this.Value = ((object) stringBuilder).ToString();
          }
        }

        public string Currency
        {
          get
          {
            string str1 = (string) null;
            string str2 = this.Value;
            if (str2 != null && str2.Length > 6)
              str1 = str2.Length <= 9 ? str2.Substring(6) : str2.Substring(6, 3);
            return str1;
          }
          set
          {
            int num1 = 6;
            int num2 = 3;
            StringBuilder stringBuilder = new StringBuilder();
            string str1 = this.Value ?? string.Empty;
            str1.PadLeft(num1, ' ');
            stringBuilder.Append(str1.Substring(0, num1));
            string str2 = ((object) value).ToString();
            if (str2.Length > num2)
              str2 = str2.Substring(0, num2);
            if (str1.Length > num1 + num2)
              str2 = str2.PadLeft(num2, ' ');
            stringBuilder.Append(str2);
            if (str1.Length > num1 + num2)
              stringBuilder.Append(str1.Substring(num1 + num2));
            this.Value = ((object) stringBuilder).ToString();
          }
        }

        public Decimal Amount
        {
          get
          {
            Decimal result = new Decimal(0);
            string str = this.Value;
            if (str != null && str.Length > 9)
              Decimal.TryParse(str.Length <= 24 ? str.Substring(9) : str.Substring(9, 15), out result);
            return result;
          }
          set
          {
            int num1 = 9;
            int num2 = 15;
            StringBuilder stringBuilder = new StringBuilder();
            string str1 = this.Value ?? string.Empty;
            str1.PadLeft(num1, ' ');
            stringBuilder.Append(str1.Substring(0, num1));
            string str2 = value.ToString();
            if (str2.Length > num2)
              str2 = str2.Substring(0, num2);
            if (str1.Length > num1 + num2)
              str2 = str2.PadLeft(num2, ' ');
            stringBuilder.Append(str2);
            if (str1.Length > num1 + num2)
              stringBuilder.Append(str1.Substring(num1 + num2));
            this.Value = ((object) stringBuilder).ToString();
          }
        }

        internal Tag32D(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class Tag56D : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("56D", value);
          }
        }

        internal Tag56D(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }
    }
  }
}
